#!/bin/bash
FILE=$1
VAR_NAME=$2

# 提取数组大小并创建变量定义
if [[ "$(uname)" == "Darwin" ]]; then
  ARRAY_SIZE=$(perl -ne "/${VAR_NAME}\[(\d+)/ && print \$1" "$FILE")
else
  ARRAY_SIZE=$(grep -oP "$VAR_NAME\[\K[0-9]+" "$FILE")
fi

# 创建临时文件进行处理
TEMP_FILE=$(mktemp)

# 添加#include行和变量定义
echo "#include <cstdint>" > "$TEMP_FILE"
echo >> "$TEMP_FILE"
echo "static const size_t ${VAR_NAME}_LEN = $ARRAY_SIZE;" >> "$TEMP_FILE"

# 移除数组定义中的大小并添加到临时文件
sed "s/$VAR_NAME\[[0-9]*\]/$VAR_NAME[]/" "$FILE" >> "$TEMP_FILE"

# 覆盖原文件
mv "$TEMP_FILE" "$FILE"
